This invention relates to digital video systems which send multiple streams of video data f rom a video library to respective sets of viewers. in the prior art, one such system is described in U.S. Pat. No. 5,583,561 which is entitled xe2x80x9cMulti-Cast Digital video Server using Synchronization Groupsxe2x80x9d.
An overview of the above prior art system is shown in FIG. 1 of patent ""561. There, multiple video programs are stored in a video library 10 which is coupled to a video server 12; and, the video server 12 is coupled through a network interface circuit 18 and a distribution network 20 to a plurality of addressable display devices 22, 24, and 26. To receive a particular video program at a particular display device, a request is sent by a viewer via a telephone to the video server.
In patent ""561, the requests for the video programs are placed by the video server into a predetermined number of synchronization groups. This is shown in FIGS. 5, 6A and 6B of patent ""561. One synchronization group consists of the requests for a video program that are received between time T0 and T1; the next synchronization group consists of the requests for the same video program which are received between time T1 and T2; etc. Then, all of the viewers in a particular synchronization group are sent the requested video program starting at the same time; and each such transmission of the video program is called a xe2x80x9cstreamxe2x80x9d. In FIG. 5, the transmission of a video program which begins at time T0 is called STREAM #1; the transmission of the same program which begins at time T1 is called STREAM #2; etc.
On the distribution network 20, many video data streams can be sent simultaneously to the respective viewers. One particular way in which that is accomplished is to write small packets of each video stream into a series of cells, and to send the cells for all of the streams in a time-multiplexed fashion on the network to the respective viewers. For example, in a standard ATM distribution network, the streams are partitioned into frames of a particular length and a cyclic redundancy check is generated for each frame. Then, each frame and its corresponding cyclic redundancy check are written into a series of several full cells and one or two partial cells. Each full cell holds 48 bytes of video data; while each partial cell holds a combination of video data and/or the cyclic redundancy check for the frame and/or unused pad which together total 48 bytes.
A cyclic redundancy check is added to each frame because noise can occur at various points in the distribution network, which in turn causes the video data in certain frames to be corrupted. If the amount of noise at a particular point on the distribution network is relatively high, then a short frame length is preferable. Short frames which are corrupted can be discarded in the receiving module, with little distortion in the visual display perceived by the viewer.
However, at the end of each frame that is sent, extra processing steps must be performed in both the transmitting module and the receiving module. This extra processing is required because the partial cell at the end of each frame must be treated differently from the full cells; and, the start of a new frame must be set up. This extra processing requires a fixed amount of time regardless of frame size. Consequently, to minimize such extra processing, frames with a long length are desired.
Thus, a problem arises regarding what the optimal length for the frames should be. Further, the problem is made worse due to the fact that the average bit rate of the video data in a stream is a function of the frame length. Average bit rate varies with frame length because the amount of video data in the partial cells varies with frame length. Typically, in order to operate properly, all of the receiving modules need to receive the video data at a single predetermined average bit rate; and so the frame length cannot be selected based solely on noise considerations.
Accordingly, a primary object of the present invention is to provide a method of sending multiple streams of digital video data on a distribution network such that the above problem is overcome.
With the present invention, multiple streams of digital video data are sent from a transmitting module to respective sets of receiving modules, by performing the following steps.
Initially, all of the video data streams are partitioned into frames of at least two different lengths, where each frame length is an integer multiple times a minimum frame length. Next, each frame is written into a series of full cells and one or two partial cells. Each full cell carries the same number of video data bits, while each partial cell carries video data bits and/or other overhead bits which together equal the number of video data bits in one full cell. Then, the full cells and partial cells for the frames in all of the streams are sent, in a time-multiplexed fashion, on a communication channel at a single cell rate. Further, in performing all of the above steps, a constraint is imposed whereby the different frame lengths are limited to those where the integer multiple of the minimum frame length, divided by the total number of full and partial cells per frame, is a single ratio.
By performing the above steps, the video data bits in all of the video streams occur on the communication channel at the same average bit rate. This single average bit rate is independent of the different frame lengths and the different number of video data bits in the partial cells, even though the cells for all of the streams are transmitted at the same rate. Consequently, the frame length in the stream to a particular receiving module can be increased as the amount of noise which that receiving module is experiencing on the communication channel decreases, and the average bit rate of the video data in each stream will stay the same.